package com.example.timer.handler.annotation;

import com.example.timer.enums.ScheduleTypeEnum;

import java.lang.annotation.*;

/**
 * annotation for method jobhandler
 *
 * @author daiguojun 2019-12-11 20:50:13
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface Job {

    /**
     * handler name,必须指定反射时需要用。
     */
    String value();

    /**
     * 任务调度类型 （corn 或者 固定速度 fix rate）
     * @return
     */
    ScheduleTypeEnum type() default ScheduleTypeEnum.CRON;

    /**
     * 调度配置，值含义取决于调度类型 (默认corn 一分钟执行一次)或者默认执行时间
     * @return
     */
    String scheduleConf() default "0 0/1 * * * ? ";

    /**
     * init handler, invoked when JobThread init
     */
    String init() default "";

    /**
     * destroy handler, invoked when JobThread destroy
     */
    String destroy() default "";

}
